
筆者要來介紹兩個做 Agent 時的實用的功能: Entity 與 Global Variable
簡單講,Entity 是幫 Agent 準備好的「字典」與「格式規則」,Global Variable 則是讓資料可以跨 Topic 搬來搬去。
這篇對誰有用?如果你正在做點餐 Agent、報修 Agent、會員註冊 Agent,或任何需要收集固定格式資料的功能,這篇就是很好的練手場景。 筆者這次用「訂飲料」當例子,順便收集手機號碼,讓 Agent 知道使用者要喝什麼、電話是多少,最後還把電話跨到另一個 Topic 顯示出來。
🧠 Entity 是什麼?先把它想成 Agent 的字典
筆者原本以為 Entity 只是讓共享詞彙,結果實際用下去才發現,它比較像是幫 Agent 建立一套「這些詞其實代表同一件事」的規則。 Copilot Studio 裡面本來就有一些內建 Entity,例如 Age、City、日期、Email 等等,這些可以直接拿來用,不需要每次都重新定義。

但實務上,我們常常會遇到企業自己的資料,例如飲料名稱、產品類別、部門名稱、服務類型。這時候就可以新增 Custom Entity, 建好之後,不同 Topic 就能共用,不必每個地方都重新打一遍,省下不少重工時間。
📖 Entity 的核心概念
內建 Entity:Copilot Studio 預先提供,例如年齡、城市、日期。
自訂 Entity:由筆者自己建立,例如飲料選項、產品型號。
同義詞 Synonyms:使用者講「BT」或「紅茶」,Agent 都能對應到同一個選項。
集中管理:修改一次,多個 Topic 都可以使用。

🥤 實作第一步:建立飲料用的 Closed List Entity
今天的第一個 Entity,筆者命名為 Drink Options,方法選擇 Closed List。 Closed List 很適合用在「選項數量有限,而且答案可以明確列出來」的情境,例如飲料、尺寸、付款方式、服務類別。
接著筆者加入三個飲料選項:紅茶、綠茶、水果茶。這一步看起來很簡單,但真正有眉角的是同義詞。 畢竟使用者不一定會乖乖輸入完整名稱,因此筆者替選項加上別名:
🧋 飲料 Entity 對應表
紅茶:紅茶、BT、Black Tea
綠茶:綠茶、GT、Green Tea
水果茶:水果茶、FT、Fruit Tea
在設定畫面中記得把 Smart matching 打開,讓 Agent 不只比對完全相同的文字,也能處理部分拼字差異或類似說法。

📱 實作第二步:用 Regex Entity 驗證手機號碼
第二個 Entity 筆者使用 Regular Expression,也就是 Regex。 這類 Entity 適合用來辨識有固定格式的資料,例如手機號碼、員工編號、訂單編號、IP 位址或票券號碼。

在截圖裡,筆者想限制台灣手機號碼必須以 09 開頭,後面接數字。
🛠️ 實作第三步:把 Entity 放進定飲料 Topic
Entity 建好後,筆者開始建立「定飲料」Topic,使用 Copilot Studio 的精靈快速產生流程。 這裡的做法很適合初學者,先用自然語言描述需求,讓 Copilot 幫忙產生基本的 Question 節點,再回頭調整辨識方式與變數名稱。

筆者讓 Topic 依序詢問兩個問題:使用者的手機號碼,以及想要的飲料。 手機號碼的問題改用剛剛建立的 Regex Entity,飲料問題則改用 Drink Options 這個 Closed List Entity。

🧪 實際測試:錯的電話,Agent 會不會一直追問?
筆者先測測試手機號碼,故意輸入不符合規則的內容;再接著試飲料選項,輸入 BT,確認 Agent 能正確理解成紅茶。
測試時,如果輸入的電話不是以 09 開頭,或是長度不符合 Regex,Agent 就會再次詢問。 筆者也故意只輸入「09」,讓它處理不完整的資料,結果 Agent 確實判斷不符合格式,要求重新輸入。 這就是 Regex Entity 的價值:不是讓使用者隨便填一串數字,而是先把資料格式守住。

✅ 本日結論
Global Variable 可以讓資料跨 Topic 使用,這個有時候有大用,例如個人基本資料,就可以塞進去,隨時取用。Entity 可以建立共用選項或是特定名詞,當有很多Topics時,會非常方便![]()